qsort(nil) → nil
qsort(.(x, y)) → ++(qsort(lowers(x, y)), .(x, qsort(greaters(x, y))))
lowers(x, nil) → nil
lowers(x, .(y, z)) → if(<=(y, x), .(y, lowers(x, z)), lowers(x, z))
greaters(x, nil) → nil
greaters(x, .(y, z)) → if(<=(y, x), greaters(x, z), .(y, greaters(x, z)))
↳ QTRS
↳ Overlay + Local Confluence
qsort(nil) → nil
qsort(.(x, y)) → ++(qsort(lowers(x, y)), .(x, qsort(greaters(x, y))))
lowers(x, nil) → nil
lowers(x, .(y, z)) → if(<=(y, x), .(y, lowers(x, z)), lowers(x, z))
greaters(x, nil) → nil
greaters(x, .(y, z)) → if(<=(y, x), greaters(x, z), .(y, greaters(x, z)))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
qsort(nil) → nil
qsort(.(x, y)) → ++(qsort(lowers(x, y)), .(x, qsort(greaters(x, y))))
lowers(x, nil) → nil
lowers(x, .(y, z)) → if(<=(y, x), .(y, lowers(x, z)), lowers(x, z))
greaters(x, nil) → nil
greaters(x, .(y, z)) → if(<=(y, x), greaters(x, z), .(y, greaters(x, z)))
qsort(nil)
qsort(.(x0, x1))
lowers(x0, nil)
lowers(x0, .(x1, x2))
greaters(x0, nil)
greaters(x0, .(x1, x2))
QSORT(.(x, y)) → LOWERS(x, y)
GREATERS(x, .(y, z)) → GREATERS(x, z)
LOWERS(x, .(y, z)) → LOWERS(x, z)
QSORT(.(x, y)) → GREATERS(x, y)
QSORT(.(x, y)) → QSORT(lowers(x, y))
QSORT(.(x, y)) → QSORT(greaters(x, y))
qsort(nil) → nil
qsort(.(x, y)) → ++(qsort(lowers(x, y)), .(x, qsort(greaters(x, y))))
lowers(x, nil) → nil
lowers(x, .(y, z)) → if(<=(y, x), .(y, lowers(x, z)), lowers(x, z))
greaters(x, nil) → nil
greaters(x, .(y, z)) → if(<=(y, x), greaters(x, z), .(y, greaters(x, z)))
qsort(nil)
qsort(.(x0, x1))
lowers(x0, nil)
lowers(x0, .(x1, x2))
greaters(x0, nil)
greaters(x0, .(x1, x2))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ EdgeDeletionProof
QSORT(.(x, y)) → LOWERS(x, y)
GREATERS(x, .(y, z)) → GREATERS(x, z)
LOWERS(x, .(y, z)) → LOWERS(x, z)
QSORT(.(x, y)) → GREATERS(x, y)
QSORT(.(x, y)) → QSORT(lowers(x, y))
QSORT(.(x, y)) → QSORT(greaters(x, y))
qsort(nil) → nil
qsort(.(x, y)) → ++(qsort(lowers(x, y)), .(x, qsort(greaters(x, y))))
lowers(x, nil) → nil
lowers(x, .(y, z)) → if(<=(y, x), .(y, lowers(x, z)), lowers(x, z))
greaters(x, nil) → nil
greaters(x, .(y, z)) → if(<=(y, x), greaters(x, z), .(y, greaters(x, z)))
qsort(nil)
qsort(.(x0, x1))
lowers(x0, nil)
lowers(x0, .(x1, x2))
greaters(x0, nil)
greaters(x0, .(x1, x2))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ EdgeDeletionProof
↳ QDP
↳ DependencyGraphProof
QSORT(.(x, y)) → LOWERS(x, y)
GREATERS(x, .(y, z)) → GREATERS(x, z)
LOWERS(x, .(y, z)) → LOWERS(x, z)
QSORT(.(x, y)) → QSORT(lowers(x, y))
QSORT(.(x, y)) → GREATERS(x, y)
QSORT(.(x, y)) → QSORT(greaters(x, y))
qsort(nil) → nil
qsort(.(x, y)) → ++(qsort(lowers(x, y)), .(x, qsort(greaters(x, y))))
lowers(x, nil) → nil
lowers(x, .(y, z)) → if(<=(y, x), .(y, lowers(x, z)), lowers(x, z))
greaters(x, nil) → nil
greaters(x, .(y, z)) → if(<=(y, x), greaters(x, z), .(y, greaters(x, z)))
qsort(nil)
qsort(.(x0, x1))
lowers(x0, nil)
lowers(x0, .(x1, x2))
greaters(x0, nil)
greaters(x0, .(x1, x2))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ EdgeDeletionProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDPOrderProof
↳ QDP
GREATERS(x, .(y, z)) → GREATERS(x, z)
qsort(nil) → nil
qsort(.(x, y)) → ++(qsort(lowers(x, y)), .(x, qsort(greaters(x, y))))
lowers(x, nil) → nil
lowers(x, .(y, z)) → if(<=(y, x), .(y, lowers(x, z)), lowers(x, z))
greaters(x, nil) → nil
greaters(x, .(y, z)) → if(<=(y, x), greaters(x, z), .(y, greaters(x, z)))
qsort(nil)
qsort(.(x0, x1))
lowers(x0, nil)
lowers(x0, .(x1, x2))
greaters(x0, nil)
greaters(x0, .(x1, x2))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
GREATERS(x, .(y, z)) → GREATERS(x, z)
trivial
.1: multiset
GREATERS2: [2,1]
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ EdgeDeletionProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ PisEmptyProof
↳ QDP
qsort(nil) → nil
qsort(.(x, y)) → ++(qsort(lowers(x, y)), .(x, qsort(greaters(x, y))))
lowers(x, nil) → nil
lowers(x, .(y, z)) → if(<=(y, x), .(y, lowers(x, z)), lowers(x, z))
greaters(x, nil) → nil
greaters(x, .(y, z)) → if(<=(y, x), greaters(x, z), .(y, greaters(x, z)))
qsort(nil)
qsort(.(x0, x1))
lowers(x0, nil)
lowers(x0, .(x1, x2))
greaters(x0, nil)
greaters(x0, .(x1, x2))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ EdgeDeletionProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDPOrderProof
LOWERS(x, .(y, z)) → LOWERS(x, z)
qsort(nil) → nil
qsort(.(x, y)) → ++(qsort(lowers(x, y)), .(x, qsort(greaters(x, y))))
lowers(x, nil) → nil
lowers(x, .(y, z)) → if(<=(y, x), .(y, lowers(x, z)), lowers(x, z))
greaters(x, nil) → nil
greaters(x, .(y, z)) → if(<=(y, x), greaters(x, z), .(y, greaters(x, z)))
qsort(nil)
qsort(.(x0, x1))
lowers(x0, nil)
lowers(x0, .(x1, x2))
greaters(x0, nil)
greaters(x0, .(x1, x2))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
LOWERS(x, .(y, z)) → LOWERS(x, z)
[LOWERS2, .1]
.1: multiset
LOWERS2: [1,2]
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ EdgeDeletionProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ PisEmptyProof
qsort(nil) → nil
qsort(.(x, y)) → ++(qsort(lowers(x, y)), .(x, qsort(greaters(x, y))))
lowers(x, nil) → nil
lowers(x, .(y, z)) → if(<=(y, x), .(y, lowers(x, z)), lowers(x, z))
greaters(x, nil) → nil
greaters(x, .(y, z)) → if(<=(y, x), greaters(x, z), .(y, greaters(x, z)))
qsort(nil)
qsort(.(x0, x1))
lowers(x0, nil)
lowers(x0, .(x1, x2))
greaters(x0, nil)
greaters(x0, .(x1, x2))